package com.eltsistemas.dao;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;

import com.eltsistemas.modelo.Usuario;


public class UsuarioDao {

	private Session session;
	
	public UsuarioDao(Session session)
	{
		this.session=session;
	}
	
	public Usuario valida(Usuario usuario) throws HibernateException
	{
		Query query = this.session.createQuery("from Usuario "+
				"where login=:login and senha=:senha");
		query.setString("login", usuario.getLogin());
		query.setString("senha", usuario.getSenha());
		
		return (Usuario) query.uniqueResult();
		
	}
	
	public Usuario findByName(String login)
	{
		Query query = this.session.createQuery("from Usuario where login = :login");
		query.setString("login", login);
		return (Usuario) query.uniqueResult();		
	}
	
	public Usuario findByName_ForUpdate(String login, Long id)
	{
		Query query = this.session.createQuery("from Usuario where login = :login and id != :id");
		query.setString("login", login);
		query.setLong("id", id);
		return (Usuario) query.uniqueResult();		
	}
	
	
}
